﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CTEM.Controllers.BUS;
using CTEM.Models;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Base;
using CTEM.Controllers.Global;

namespace CTEM.ModuleForms.ManageLedger
{
    public partial class Details : DevExpress.XtraEditors.XtraForm
    {
        private readonly long _ledgerId;
        private LedgerDTO _ledger = new LedgerDTO();
        private readonly LedgerBUS _ledgerBus = new LedgerBUS();
        public Details(long ledgerId)
        {
            InitializeComponent();
            
            _ledgerId = ledgerId;
            LoadDetails();
        }

        private void LoadDetails ()
        {
            _ledger = _ledgerBus.GetLedgerByID(_ledgerId);
            ledgerDTOBindingSource.DataSource = _ledger;
        }

        private void gridView1_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
        {
            var ledger = e.Row as LedgerDTO;

            if (_ledgerBus.updateLedger(ledger))
                MessageBox.Show("Cập nhật thành công", "Thông Báo");
            else MessageBox.Show("Cập nhật không thành công", "Thông Báo");
        }

        private void layoutView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            var view = sender as ColumnView;
            var i = e.RowHandle;
            var ledger = layoutView1.GetFocusedRow() as LedgerDTO;

            if (!_ledgerBus.updateLedger(ledger))
                
             MessageBox.Show("Cập nhật không thành công", "Thông Báo");
        }

        private void Details_FormClosed(object sender, FormClosedEventArgs e)
        {
            alertControlMain.Show(this, Constants.CONFIRM, String.Format("Bạn Đã sửa chửa thông tin phiếu chuyển khoản cho phiếu {0} sô {1} Thành Công!", _ledger.Type, _ledger.Name));
        }
    }
}